5.1 计时器模块
实现一个计时器,该计时器会根据给定的时钟周期数量进行倒计时,然后在给定持续时间结束后断言一个信号以指示时间已到。实现这一功能的一个好方法是使用一个下计数器(down-counter),当计数变为0时,它会断言一个输出信号。
在每个时钟周期:
- 如果 load = 1,无论计数器当前状态如何,都会用10位数据(即计时器应计数的时钟周期数)来加载内部计数器。
- 如果 load = 0,内部计数器应自减1。
输出信号tc("terminal count",终止计数)表明内部计数器是否已经到达0。一旦内部计数器达到0,它就应保持为0(停止计数),直到计数器被再次加载。 以下是一个计时器被要求计数3个周期时的示例情况说明:
模块声明
module top_module(
input clk,
input load,
input [9:0] data,
output tc
);